﻿using System;
using System.Collections.Generic;
using System.Text;
using Meqs.Entity;
using Meqs.Entity.Views;

namespace Meqs.Logic.Interface
{
    public interface IQualitySheetItemsLogic : IMultiCommonLogic<QualitySheetItems, int>
    {
        /// <summary>
        /// 自定义插入
        /// </summary>
        /// <param name="items"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        int InsertQualitySheetItems(QualitySheetItems items, string schoolMark);

        /// <summary>
        /// 自定义更新
        /// </summary>
        /// <param name="items"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        int UpdateQualitySheetItems(QualitySheetItems items, string schoolMark);

        /// <summary>
        /// 获取QualitySheetItems
        /// </summary>
        /// <param name="studentEvalId"></param>
        /// <param name="destId"></param>
        /// <param name="authorId"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        QualitySheetItems GetQualitySheetItemsByCondition(int studentEvalId, int destId, int authorId, string schoolMark);

        /// <summary>
        /// 获取学校内某年级下的班级
        /// </summary>
        /// <param name="schoolMark"></param>
        /// <param name="grade"></param>
        /// <returns></returns>
        IList<ClsInfo> GetClassesInGrade(String schoolMark, int grade);

        /// <summary>
        /// 查询个人分析报表
        /// </summary>
        /// <param name="schoolMark"></param>
        /// <param name="grade"></param>
        /// <param name="cls"></param>
        /// <returns></returns>
        IList<StudentReportView> GetQualityStudentReport(String schoolMark, int seid,  int grade, int cls);

        /// <summary>
        /// 查询班级分析报表
        /// </summary>
        IList<ClassReportView> GetQualityClassReport(String schoolMark, int seid, int grade, int cls);

        /// <summary>
        /// 查询是否评完
        /// </summary>
        /// <param name="studentID"></param>
        /// <param name="schoolMark"></param>
        /// <returns></returns>
        bool CheckAllState(int studentID, string schoolMark);

        /// <summary>
        /// 查询年级分析报表
        /// </summary>
        IList<GradeReportView> GetQualityGradeReport(String schoolMark, int seid, int grade);
    }
}
